Many file formats are designed as composite data files, to store multiple types of data supporting the presentation or printing of a related document. For example, print files in formats such as PCL (Printer Command Language), PostScript, EMF (Enhanced Metafile), XPS (Extensible Markup Language—XML Paper Specification), and PDF (Portable Document Format) often contain not just text and drawing instructions, but also discrete data objects such as fonts, images, printer macros, and other elements. In addition, a composition of large amounts of text could represent a standardized element that would be present in multiple documents; so long streams of textual content would also represent a discrete data object. Likewise, data formats such as XML (Extensible Markup Language) can contain large payload data, such as images, videos, animations, audio, or embedded files, in addition to tags and variable textual data. Other file formats include container files, such as files based on zip files (Winzip) or tar archives (originally a Unix format and command). Some examples of container files include the already-mentioned XPS document file, Java's “jar” file, various ebook formats, such as OCF, MusicXML, and other file types. Such container files can contain font files, image files, executable code files, audio files, and other resources.
As single files, these documents can be easily transported between systems, or from systems to devices. However, these files can become quite large and therefore time consuming to transport in a low-bandwidth environment, or potentially costly to transport when charges apply to the amount of data transported, or when additional network capacity must be purchased to accommodate document transport in a timely manner.